\section{Game Class Reference}
\label{classGame}\index{Game@{Game}}
Serveur de partie. Représente une partie.  


{\tt \#include $<$game.h$>$}

Inheritance diagram for Game:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=49pt]{classGame__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for Game:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=49pt]{classGame__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf Game} (u\_\-short portEcoute, u\_\-short portLecture, u\_\-short portEcouteServeur, u\_\-short portEcouteDistant, u\_\-short portEcouteServeurPrincipal, string adresseServeurPrincipal)
\begin{CompactList}\small\item\em Constructeur. \item\end{CompactList}\item 
{\bf $\sim$Game} ()\label{classGame_e3d112ca6e0e55150d2fdbc704474530}

\begin{CompactList}\small\item\em Destructeur. \item\end{CompactList}\item 
int {\bf createUDPSock} (u\_\-short port)
\begin{CompactList}\small\item\em Crée un socket UDP. \item\end{CompactList}\item 
int {\bf createTCPSock} (u\_\-short port)
\begin{CompactList}\small\item\em Crée un socket TCP. \item\end{CompactList}\item 
int {\bf serveurConnection} ()
\begin{CompactList}\small\item\em Connexion au serveur principal. Envoie le code d'identification. \item\end{CompactList}\item 
int $\ast$ {\bf connectionWaiting} ()\label{classGame_711496fb9bf03e83d1b3bbfdbb999a05}

\begin{CompactList}\small\item\em Attend l'arrivée de nouveaux joueurs. \item\end{CompactList}\item 
void $\ast$ {\bf traiterClient} ()\label{classGame_9b35f7d6f18a209a3c477a313b401ec8}

\begin{CompactList}\small\item\em Traite les nouveaux joeurs. \item\end{CompactList}\item 
void $\ast$ {\bf receive} ()\label{classGame_f0641fe640f0c488147edcc56eb88235}

\begin{CompactList}\small\item\em Intercepte les données émises en UDP par les joueurs (). \item\end{CompactList}\item 
int $\ast$ {\bf receiveServeur} ()\label{classGame_11e5d85904894274e66317bafea4f898}

\begin{CompactList}\small\item\em Intercepte les données émises par le serveur. \item\end{CompactList}\item 
void {\bf traiteServeur} ()
\item 
int {\bf sendToAll} (struct sockaddr\_\-in adresseDistante, string data)\label{classGame_81820359be483fb571083cdec82c3ca5}

\begin{CompactList}\small\item\em Renvoie une réponse à l'émeteur. \item\end{CompactList}\item 
int {\bf sendOthers} (struct sockaddr\_\-in adresseDistante, string data)\label{classGame_55c34857b62634d455c08d9c572d1369}

\begin{CompactList}\small\item\em Renvoie à tous les joueurs (sauf l'émeteur) de la partie les nouvelles coordonnées et autres données à mettre à jour. \item\end{CompactList}\item 
virtual void {\bf traitementEcoute} ()\label{classGame_29fa35a3a389613f609a67875e46bb30}

\begin{CompactList}\small\item\em Lance la méthode connectionWaiting dans le thread d'ecoute. \item\end{CompactList}\item 
virtual void {\bf traitementNouveauClient} ()\label{classGame_156b37ff63ffe2063ce93818b20c3a2b}

\begin{CompactList}\small\item\em Lance la méthode traiterClient dans un nouveau thead temporaire. \item\end{CompactList}\item 
virtual void {\bf traitementLecture} ()\label{classGame_06f60be15c10e731a257807e9bb0eceb}

\begin{CompactList}\small\item\em Lance la méthode receive dans le thread de lecture. \item\end{CompactList}\item 
virtual void {\bf ecouteServeur} ()\label{classGame_3e97b55eaa8f226185260f46a407b1f8}

\begin{CompactList}\small\item\em Lance la méthode receiveServeur dans le thread d'ecoute du serveur. \item\end{CompactList}\item 
virtual void {\bf traitementServeur} ()\label{classGame_4e906947296b746c5bcbab650c54d557}

\begin{CompactList}\small\item\em Lance la méthode de traitement des messages du serveur principal et de partie. \item\end{CompactList}\item 
int {\bf addPlayer} ({\bf Joueur} joueur)
\begin{CompactList}\small\item\em Ajoute un joueur à une partie existante. \item\end{CompactList}\item 
int {\bf removePlayer} (string adresse)
\begin{CompactList}\small\item\em Déconnecte un joueur d'une partie. \item\end{CompactList}\item 
void {\bf log} (string message)
\begin{CompactList}\small\item\em Ecrit dans un fichier de log les événements particuliers d'une partie. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
Serveur de partie. Représente une partie. 

Hérite de la classe \doxyref{Threads}{p.}{classThreads}. Permet de créer une nouvelle partie, de connecter un joueur à une partie existante. Ecoute les mouvements de joueurs. 

\subsection{Constructor \& Destructor Documentation}
\index{Game@{Game}!Game@{Game}}
\index{Game@{Game}!Game@{Game}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}Game::Game (u\_\-short {\em portEcoute}, u\_\-short {\em portLecture}, u\_\-short {\em portEcouteServeur}, u\_\-short {\em portEcouteDistant}, u\_\-short {\em portEcouteServeurPrincipal}, string {\em adresseServeurPrincipal})}\label{classGame_89114067e8703608d01a448c056cca7b}


Constructeur. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em portEcoute}]Port d'écoute TCP de connection des clients. \item[{\em portLecture}]Port de lecture UDP des mouvements des joueurs. \item[{\em portEcouteServeur}]Port d'écoute TCP des messages du serveur. \item[{\em portEcouteDistant}]Port d'écoute UDP du client distant. \item[{\em portEcouteServeurPrincipal}]Port d'écoute TCP du serveur principal distant. \item[{\em adresseServeurPrincipal}]Adresse du serveur principal distant. \end{description}
\end{Desc}


\subsection{Member Function Documentation}
\index{Game@{Game}!createUDPSock@{createUDPSock}}
\index{createUDPSock@{createUDPSock}!Game@{Game}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int Game::createUDPSock (u\_\-short {\em port})}\label{classGame_f3507978d7878ed70af6125c055dc54e}


Crée un socket UDP. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em port}]Le port du socket à créer. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]Un entier indiquant si la création s'est bien passée. \end{Desc}
\index{Game@{Game}!createTCPSock@{createTCPSock}}
\index{createTCPSock@{createTCPSock}!Game@{Game}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int Game::createTCPSock (u\_\-short {\em port})}\label{classGame_583f268bcd557e81d891e303b4e0d5b7}


Crée un socket TCP. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em port}]Le port du socket à créer. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]Un entier indiquant si la création s'est bien passée. \end{Desc}
\index{Game@{Game}!serveurConnection@{serveurConnection}}
\index{serveurConnection@{serveurConnection}!Game@{Game}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int Game::serveurConnection ()}\label{classGame_14a1c77341e97af0547641a9305819f8}


Connexion au serveur principal. Envoie le code d'identification. 

\begin{Desc}
\item[Returns:]Un entier indiquant si la connexion a été accepté. \end{Desc}
\index{Game@{Game}!traiteServeur@{traiteServeur}}
\index{traiteServeur@{traiteServeur}!Game@{Game}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Game::traiteServeur ()}\label{classGame_be8cac3aa5f22f8ebab71493aa3336b2}


Traite les messages du serveur principal et de partie. \index{Game@{Game}!addPlayer@{addPlayer}}
\index{addPlayer@{addPlayer}!Game@{Game}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int Game::addPlayer ({\bf Joueur} {\em joueur})}\label{classGame_f781118c67b7f0c35cb84ce5ae0d9826}


Ajoute un joueur à une partie existante. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em joueur}]Le joueur a ajouter à la partie. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]Un entier indiquant si l'ajout s'est bien passée. \end{Desc}
\index{Game@{Game}!removePlayer@{removePlayer}}
\index{removePlayer@{removePlayer}!Game@{Game}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int Game::removePlayer (string {\em adresse})}\label{classGame_4a07a945266f9be1c5cc96c2dee3fe00}


Déconnecte un joueur d'une partie. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em adresse}]L'adresse du joueur à supprimer de la partie. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]Un entier indiquant si la suppression s'est bien passée. \end{Desc}
\index{Game@{Game}!log@{log}}
\index{log@{log}!Game@{Game}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Game::log (string {\em message})}\label{classGame_bc0ebd6049ca9b2d5d2703f02f42d169}


Ecrit dans un fichier de log les événements particuliers d'une partie. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em message}]Le message à logguer.\end{description}
\end{Desc}
Écrit à la fin du fichier sans écraser les données déjà présentes. 

The documentation for this class was generated from the following files:\begin{CompactItemize}
\item 
/home/cedric/workspace/serveurPartie/game.h\item 
/home/cedric/workspace/serveurPartie/game.cpp\end{CompactItemize}
